﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace DataManager.DAL.SQL
{
    public class SzamlaMsSqlDAO: SzamlaDAO
    {
        private MsSqlUtils utils;

        public SzamlaMsSqlDAO(MsSqlUtils utils)
        {
            this.utils = utils;
        }

        public DataSet maxSzamlaSzam()
        {
            String sqlCommand = "select max(SzamlaSzam) from SzamlaFejek";

            return utils.FillDataSetFromQuery(sqlCommand);
        }

        public void ujSzamlaFej(int SzamlaSzam, DateTime Datum, int Ertek, int VasarloID, int VasarlasID)
        {
            SqlParameter param0 = new SqlParameter("@pSzamlaSzam", SqlDbType.Int, 4);
            param0.Value = Convert.ToInt32(SzamlaSzam);
            SqlParameter param1 = new SqlParameter("@pDatum", SqlDbType.DateTime, 4);
            param1.Value = Convert.ToDateTime(Datum);
            SqlParameter param2 = new SqlParameter("@pErtek", SqlDbType.Int, 4);
            param2.Value = Convert.ToInt32(Ertek);
            SqlParameter param3 = new SqlParameter("@pVasarloId", SqlDbType.Int, 4);
            param3.Value = Convert.ToInt32(VasarloID);
            SqlParameter param4 = new SqlParameter("@pVasarlasId", SqlDbType.Int, 4);
            param4.Value = Convert.ToInt32(VasarlasID); 
            
            utils.ExecuteStoredProcedure("UjSzamlaFej", param0, param1, param2, param3, param4);
        }

        public DataSet maxSzamlaSor()
        {
            String sqlCommand = "select max(SzamlaSor) from SzamlaSorok";

            return utils.FillDataSetFromQuery(sqlCommand);
        }

        public void ujSzamlaSor(int SzamlaSor, int SzamlaID, int FilmID, int Ertek)
        {
            SqlParameter param0 = new SqlParameter("@pSzamlaSor", SqlDbType.Int, 4);
            param0.Value = Convert.ToInt32(SzamlaSor);
            SqlParameter param1 = new SqlParameter("@pSzamlaSzam", SqlDbType.Int, 4);
            param1.Value = Convert.ToInt32(SzamlaID);
            SqlParameter param2 = new SqlParameter("@pFilmId", SqlDbType.Int, 4);
            param2.Value = Convert.ToInt32(FilmID);
            SqlParameter param3 = new SqlParameter("@pErtek", SqlDbType.Int, 4);
            param3.Value = Convert.ToInt32(Ertek);

            utils.ExecuteStoredProcedure("UjSzamlaSor", param0, param1, param2, param3);
        }

        public DataSet LekerdezSzamla(int SzamlaID)
        {
            string sqlCommand =
                "SELECT SzS.Szamlaszam, SzS.FilmID, SzS.Ertek, Szf.Datum, Szf.VasarloId, V.Nev, V.EmailCim, V.Helyseg, V.Cim " +
                "FROM SzamlaFejek SzF, SzamlaSorok SzS, Vasarlok V " +
                "WHERE SzF.SzamlaSzam = SzS.Szamlaszam AND " +
                "SzF.VasarloId = V.VasarloId AND " +
                "SzS.Szamlaszam=" + SzamlaID;
            return utils.FillDataSetFromQuery(sqlCommand);
        }


        public void beginTransaction()
        {
            utils.beginTransaction();
        }

        public void commitTransaction()
        {
            utils.commitTransaction();
        }

        public void rollbackTransaction()
        {
            utils.rollbackTransaction();
        }


    }
}
